{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "[Index](Index.ipynb) - [Next](Widget List.ipynb)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Simple Widget Introduction"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## What are widgets?"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "Widgets are eventful python objects that have a representation in the browser, often as a control like a slider, textbox, etc."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## What can they be used for?"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "You can use widgets to build **interactive GUIs** for your notebooks.  \n",
    "You can also use widgets to **synchronize stateful and stateless information** between Python and JavaScript."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Using widgets  "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "To use the widget framework, you need to import `ipywidgets`."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "from ipywidgets import *"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "### repr"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Widgets have their own display `repr` which allows them to be displayed using IPython's display framework.  Constructing and returning an `IntSlider` automatically displays the widget (as seen below).  Widgets are displayed inside the widget area, which sits between the code cell and output.  You can hide all of the widgets in the widget area by clicking the grey *x* in the margin."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/html": [
       "<img src= class=\"jupyter-widget\">\n",
       "<script type=\"application/vnd.jupyter-embedded-widgets\">[{},{\"layout\":\"IPY_MODEL_3a2aa8cef8ba4752b0167d16d3587714\"}]</script>"
      ]
     },
     "metadata": {
      "isWidgetSnapshot": true
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "IntSlider()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "### display()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "You can also explicitly display the widget using `display(...)`."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "from IPython.display import display\n",
    "w = IntSlider()\n",
    "display(w)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "### Multiple display() calls"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "If you display the same widget twice, the displayed instances in the front-end will remain in sync with each other.  Try dragging the slider below and watch the slider above."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "display(w)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Why does displaying the same widget twice work?"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "Widgets are represented in the back-end by a single object.  Each time a widget is displayed, a new representation of that same object is created in the front-end.  These representations are called views.\n",
    "\n",
    "![Kernel & front-end diagram](images/WidgetModelView.png)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "### Closing widgets"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "You can close a widget by calling its `close()` method."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "display(w)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "w.close()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Widget properties"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "All of the IPython widgets share a similar naming scheme.  To read the value of a widget, you can query its `value` property."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/html": [
       "<img src= class=\"jupyter-widget\">\n",
       "<script type=\"application/vnd.jupyter-embedded-widgets\">[{},{\"layout\":\"IPY_MODEL_ebc8a344310949d9a51791c0d3c4e959\",\"value\":100}]</script>"
      ]
     },
     "metadata": {
      "isWidgetSnapshot": true
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "w = IntSlider()\n",
    "display(w)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "w.value"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Similarly, to set a widget's value, you can set its `value` property."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "w.value = 100"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "### Keys"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "In addition to `value`, most widgets share `keys`, `description`, `disabled`, and `visible`.  To see the entire list of synchronized, stateful properties of any specific widget, you can query the `keys` property."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['max',\n",
       " 'font_family',\n",
       " 'layout',\n",
       " 'border_radius',\n",
       " 'disabled',\n",
       " 'font_style',\n",
       " 'background_color',\n",
       " '_view_module',\n",
       " 'slider_color',\n",
       " 'readout',\n",
       " 'font_size',\n",
       " '_dom_classes',\n",
       " '_view_name',\n",
       " '_model_name',\n",
       " 'margin',\n",
       " 'color',\n",
       " 'border_color',\n",
       " 'continuous_update',\n",
       " '_model_module',\n",
       " 'value',\n",
       " 'description',\n",
       " 'padding',\n",
       " 'orientation',\n",
       " 'border_width',\n",
       " 'width',\n",
       " 'step',\n",
       " 'height',\n",
       " 'border_style',\n",
       " 'min',\n",
       " 'visible',\n",
       " '_range',\n",
       " 'msg_throttle',\n",
       " 'font_weight']"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "w.keys"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Shorthand for setting the initial values of widget properties"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "While creating a widget, you can set some or all of the initial values of that widget by defining them as keyword arguments in the widget's constructor (as seen below)."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/html": [
       "<img src= class=\"jupyter-widget\">\n",
       "<script type=\"application/vnd.jupyter-embedded-widgets\">[{},{\"disabled\":true,\"layout\":\"IPY_MODEL_449cfcacc5d94fe89dc9efa142bb7be9\",\"value\":\"Hello World!\"}]</script>"
      ]
     },
     "metadata": {
      "isWidgetSnapshot": true
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "Text(value='Hello World!', disabled=True)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Linking two similar widgets"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "If you need to display the same value two different ways, you'll have to use two different widgets.  Instead of attempting to manually synchronize the values of the two widgets, you can use the `traitlet` `link` function to link two properties together.  Below, the values of two widgets are linked together."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/html": [
       "<img src= class=\"jupyter-widget\">\n",
       "<script type=\"application/vnd.jupyter-embedded-widgets\">[{},{\"_view_name\":\"FloatTextView\",\"layout\":\"IPY_MODEL_59c0e597e5194d50b3544fcca1fd097c\"},{},{\"_view_name\":\"FloatSliderView\",\"layout\":\"IPY_MODEL_ed86ecfbc5de4a46bc1694f9d5c8f315\",\"step\":0.1}]</script>"
      ]
     },
     "metadata": {
      "isWidgetSnapshot": true
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "from traitlets import link\n",
    "a = FloatText()\n",
    "b = FloatSlider()\n",
    "display(a,b)\n",
    "\n",
    "mylink = link((a, 'value'), (b, 'value'))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Unlinking widgets"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "Unlinking the widgets is simple.  All you have to do is call `.unlink` on the link object.  Try changing one of the widgets above after unlinking to see that they can be independently changed."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "mylink.unlink()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "[Index](Index.ipynb) - [Next](Widget List.ipynb)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.4.3+"
  },
  "widgets": {
   "state": {
    "20d2a16dc1f24ffc8d53ca96b3c451b4": {
     "views": [
      {
       "cell": {
        "cell_type": "code",
        "execution_count": 12,
        "metadata": {
         "collapsed": false,
         "trusted": true
        },
        "outputs": [
         {
          "data": {
           "image/png": "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",
           "text/html": "<img src= class=\"jupyter-widget\">\n<script type=\"application/vnd.jupyter-embedded-widgets\">[{},{\"_view_name\":\"FloatTextView\",\"layout\":\"IPY_MODEL_59c0e597e5194d50b3544fcca1fd097c\"},{},{\"_view_name\":\"FloatSliderView\",\"layout\":\"IPY_MODEL_ed86ecfbc5de4a46bc1694f9d5c8f315\",\"step\":0.1}]</script>"
          },
          "metadata": {
           "isWidgetSnapshot": true
          },
          "output_type": "display_data"
         }
        ],
        "source": "from traitlets import link\na = FloatText()\nb = FloatSlider()\ndisplay(a,b)\n\nmylink = link((a, 'value'), (b, 'value'))"
       },
       "cell_index": 38,
       "root": true
      }
     ]
    },
    "3a2aa8cef8ba4752b0167d16d3587714": {
     "views": []
    },
    "43bf10f5d7f842e99d1689fdecba78db": {
     "views": [
      {
       "cell": {
        "cell_type": "code",
        "execution_count": 11,
        "metadata": {
         "collapsed": false,
         "trusted": true
        },
        "outputs": [
         {
          "data": {
           "image/png": "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",
           "text/html": "<img src= class=\"jupyter-widget\">\n<script type=\"application/vnd.jupyter-embedded-widgets\">[{},{\"disabled\":true,\"layout\":\"IPY_MODEL_449cfcacc5d94fe89dc9efa142bb7be9\",\"value\":\"Hello World!\"}]</script>"
          },
          "metadata": {
           "isWidgetSnapshot": true
          },
          "output_type": "display_data"
         }
        ],
        "source": "Text(value='Hello World!', disabled=True)"
       },
       "cell_index": 35,
       "root": true
      }
     ]
    },
    "449cfcacc5d94fe89dc9efa142bb7be9": {
     "views": []
    },
    "4c0ae74cccf94e87bb5bb872b635b16c": {
     "views": []
    },
    "58539e7488574cadb14c267bf1907f78": {
     "views": [
      {
       "cell": {
        "cell_type": "code",
        "execution_count": 7,
        "metadata": {
         "collapsed": false,
         "trusted": true
        },
        "outputs": [
         {
          "data": {
           "image/png": "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",
           "text/html": "<img src= class=\"jupyter-widget\">\n<script type=\"application/vnd.jupyter-embedded-widgets\">[{},{\"layout\":\"IPY_MODEL_ebc8a344310949d9a51791c0d3c4e959\",\"value\":100}]</script>"
          },
          "metadata": {
           "isWidgetSnapshot": true
          },
          "output_type": "display_data"
         }
        ],
        "source": "w = IntSlider()\ndisplay(w)"
       },
       "cell_index": 26,
       "root": true
      }
     ]
    },
    "59c0e597e5194d50b3544fcca1fd097c": {
     "views": []
    },
    "5a12494846324beb9b9438b254064268": {
     "views": [
      {
       "cell": {
        "cell_type": "code",
        "execution_count": 2,
        "metadata": {
         "collapsed": false,
         "trusted": true
        },
        "outputs": [
         {
          "data": {
           "image/png": "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",
           "text/html": "<img src= class=\"jupyter-widget\">\n<script type=\"application/vnd.jupyter-embedded-widgets\">[{},{\"layout\":\"IPY_MODEL_3a2aa8cef8ba4752b0167d16d3587714\"}]</script>"
          },
          "metadata": {
           "isWidgetSnapshot": true
          },
          "output_type": "display_data"
         }
        ],
        "source": "IntSlider()"
       },
       "cell_index": 11,
       "root": true
      }
     ]
    },
    "8a41c4978e72445c83ddb4c3629b86d2": {
     "views": [
      {
       "cell": {
        "cell_type": "code",
        "execution_count": 12,
        "metadata": {
         "collapsed": false,
         "trusted": true
        },
        "outputs": [
         {
          "data": {
           "image/png": "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",
           "text/html": "<img src= class=\"jupyter-widget\">\n<script type=\"application/vnd.jupyter-embedded-widgets\">[{},{\"_view_name\":\"FloatTextView\",\"layout\":\"IPY_MODEL_59c0e597e5194d50b3544fcca1fd097c\"},{},{\"_view_name\":\"FloatSliderView\",\"layout\":\"IPY_MODEL_ed86ecfbc5de4a46bc1694f9d5c8f315\",\"step\":0.1}]</script>"
          },
          "metadata": {
           "isWidgetSnapshot": true
          },
          "output_type": "display_data"
         }
        ],
        "source": "from traitlets import link\na = FloatText()\nb = FloatSlider()\ndisplay(a,b)\n\nmylink = link((a, 'value'), (b, 'value'))"
       },
       "cell_index": 38,
       "root": true
      }
     ]
    },
    "ebc8a344310949d9a51791c0d3c4e959": {
     "views": []
    },
    "ed86ecfbc5de4a46bc1694f9d5c8f315": {
     "views": []
    }
   },
   "version": "0.0.1"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
